[action] [PR:696] [sonic_pcie]: Fix regex string literals to use raw strings in pcie_common.py#698
Merged
Conversation
…mmon.py #### Description Updated regex patterns `p1` and `p2` in `PcieUtil.get_pcie_device()` to use raw string literals (`r"..."`) instead of plain string literals. #### Motivation and Context Python 3.12+ emits `DeprecationWarning` for invalid escape sequences in regular string literals (e.g., `\w`, `\s`, `\(`), and Python 3.13 raises a `SyntaxWarning` for these. Without raw strings, sequences like `\w` and `\s` are technically undefined escape sequences that happen to work today but will become `SyntaxError` in a future Python release. Using raw string literals (`r"..."`) is the correct and idiomatic way to write regex patterns in Python. #### How Has This Been Tested? - Verified the existing test suite passes: `pytest tests/pcie_common_test.py -v` - Confirmed no `DeprecationWarning` or `SyntaxWarning` is emitted under Python 3.12/3.13 - No behavioral change, the regex patterns themselves are identical #### Additional Information (Optional) This is a purely cosmetic/correctness fix. The regex logic and matched groups are unchanged. Signed-off-by: Sonic Build Admin <sonicbld@microsoft.com>
Collaborator
Author
|
Original PR: #696 |
Collaborator
Author
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Updated regex patterns
p1andp2inPcieUtil.get_pcie_device()to use raw string literals (r"...") instead of plain string literals.Motivation and Context
On SONiC
20251110.35(Debian 13 / Python 3.13),SyntaxWarningwas emitted to stderr on every CLI invocation (show ver,show ip bgp sum, etc.) on Arista7060X6-16PE-384C-Bdevices.Root cause:
__pycache__/pcie_common.cpython-313.pycwas created by a root process with a restrictive umask, resulting in0600permissions.adminusers cannot read the0600.pyc-> Python falls back to parsingpcie_common.pyfrom source on every CLI invocation.pcie_common.pycontains invalid escape sequences (\w,\s) in plain string regex patterns -> Python 3.13 emitsSyntaxWarningon every parse.Python 3.12+ warns on invalid escape sequences in plain strings; Python 3.13 raises
SyntaxWarning; Python 3.14 will raiseSyntaxError. Raw strings (r"...") are the correct and idiomatic way to write regex patterns and eliminate the warning regardless of.pyccache state or permissions.How Has This Been Tested?
pytest tests/pcie_common_test.py -vDeprecationWarningorSyntaxWarningemitted under Python 3.12/3.13Signed-off-by: Sonic Build Admin sonicbld@microsoft.com